from pyspark.sql import SparkSession


class LocalSparkConfig:
    def __init__(self, name="localSpark"):
        # 初始化 SparkSession   当你在代码中设置 .master("local[*]") 时，PySpark 会自动启动一个本地的 Spark 实例来运行你的代码，而不需要额外安装 Spark 程序。
        # 如果你希望运行在非本地模式（例如 YARN、Standalone、Mesos 或 Kubernetes 集群）上，则需要安装和配置完整的 Spark 环境。
        self.spark = SparkSession.builder \
            .appName(name) \
            .master("local[*]") \
            .getOrCreate()

    def get_spark_session(self):
        # 提供获取 SparkSession 的方法
        return self.spark


if __name__ == '__main__':
    # 初始化配置类并获取 SparkSession
    spark_config = LocalSparkConfig()
    spark = spark_config.get_spark_session()

    # 测试代码
    df = spark.range(10)
    print(df.collect())
